#include <iostream>
using namespace std;

const int N = 65;

typedef long long LL;

int n;
// LL f[N]; // f[i] 表示: i个台阶有f[i]种走法

int main()
{
	cin >> n;

	// 版本一 :
	// 初始化
	// f[0] = 1, f[1] = 1, f[2] = 2;
	// for (int i = 3; i <= n; i++)
	// {
	// 	f[i] = f[i - 1] + f[i - 2] + f[i - 3];
	// }

	// cout << f[n] << endl;

	// 版本二 :
	LL a = 1, b = 1, c = 2;
	for (int i = 3; i <= n; i++)
	{
		LL t = a + b + c;
		a = b;
		b = c;
		c = t;
	}

	if (n == 1)	cout << b << endl;
	else cout << c << endl;

	return 0;
}